public class Rational{
  int numerator = 1;
  int denominator = 1;
  void setNumerator(int a){
    int c=f(Math.abs(a),denominator);
    numerator = a/c;
    denominator = denominator/c;
      if(numerator<0&&denominator<0){
	numerator = -numerator;
	denominator = -denominator;
   }
}
 void setDenominator(int b){
  int c=f(numerator,Math.abs(b));
    numerator = numerator/c;
    denominator = b/c;
      if(numerator<0&&denominator<0){
        numerator = -numerator;
        denominator = -denominator;
   }
}
int getNumerator(){
  return numerator;
  }
int getDenominator(){
  return denominator;
 }
int f(int a,int b){
  if(a==0) return 1;
   if(a<b){
    int  c =a;
    a=b;
    b=c;
  }
  int r=a%b;
  while(r!=0) {
    a=b;
    b=r;
    r=a%b;
   }
  return b;
 }
  Rational add(Rational r) {
  int a=r.getNumerator();
  int b=r.getDenominator();
  int newNumerator =numerator*b+denominator*a;
  int newDenominator = denominator*b;
  Rational result = new Rational();
  result.setNumerator(newNumerator);
  result.setDenominator(newDenominator);
  return result;
 }
  Rational sub(Rational r){
  int a=r.getNumerator();
  int b=r.getDenominator();
  int newNumerator =numerator*b-denominator*a;
  int newDenominator = denominator*b;
  Rational result = new Rational();
  result.setNumerator(newNumerator);
  result.setDenominator(newDenominator);
  return result;
}
  Rational muti(Rational r){
  int a=r.getNumerator();
  int b=r.getDenominator();
  int newNumerator =numerator*a;
  int newDenominator = denominator*b;
  Rational result = new Rational();
  result.setNumerator(newNumerator);
  result.setDenominator(newDenominator);
  return result;
  }

  Rational div(Rational r) {
int a=r.getNumerator();
  int b=r.getDenominator();
  int newNumerator =numerator*b;
  int newDenominator = denominator*a;
  Rational result = new Rational();
  result.setNumerator(newNumerator);
  result.setDenominator(newDenominator);
  return result;
}
}
